home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / shadebobs.lha / shade_bobs.s < prev    next >
Encoding:
Text File  |  1980-10-28  |  13.4 KB  |  643 lines

  1.     Section    Demo,Code_C
  2.  
  3.     Opt    C-,O+,w-
  4.  
  5.     opt    d+
  6.  
  7. size1    = 80
  8. size2    = 130
  9. size3    = 70
  10.  
  11. speed1    = 6
  12. speed2    = 8
  13. speed3    = 10
  14. speed4    = 12
  15.  
  16. Start:    bsr    rndinit
  17.  
  18.     lea    $dff000,a5        ; hardware base address
  19.  
  20.     Move.w    $1c(a5),OldInt    ; Save Old Interupts
  21.     Move.w    $02(a5),OldDma    ; Save Old DMA
  22.  
  23.     Move.w    #$7fff,$9a(a5)    ; Clear DMA
  24.     Move.w    #$7fff,$96(a5)    ; Clear Interupts
  25.     Move.w    #$7fff,$9c(a5)    ; Clear Interupt Requests
  26.     
  27.     Move.b    #$7f,$bfed01    ; kill timers (rem me for disk)
  28.     Move.l    $6c.w,OldV3        ; save level 3 int
  29.  
  30.     Move.l    #my_level3,$6c.w    ; put new copper interupt
  31.     Move.l    #my_copper,$80(a5)     ; Address of copper 1
  32.     Move.w    #$c010,$9a(a5)    ; Start interupts
  33.  
  34.     Move.w    #$83ef,$96(a5)    ; Start DMA ( 83ff for disk dma)
  35.     Move.w    #1,$88(a5)        ; Strobe for copper start
  36.  
  37.     move.l    #screena,d0
  38.     move.w    d0,sb_plane0_lo
  39.     swap    d0
  40.     move.w    d0,sb_plane0_hi
  41.     swap    d0
  42.     
  43.     move.l    #screenb,d0
  44.     move.w    d0,sb_plane1_lo
  45.     swap    d0
  46.     move.w    d0,sb_plane1_hi
  47.     swap    d0
  48.     
  49.     move.l    #screenc,d0
  50.     move.w    d0,sb_plane2_lo
  51.     swap    d0
  52.     move.w    d0,sb_plane2_hi
  53.     swap    d0
  54.     
  55.     move.l    #screend,d0
  56.     move.w    d0,sb_plane3_lo
  57.     swap    d0
  58.     move.w    d0,sb_plane3_hi
  59.     swap    d0
  60.     
  61.     move.l    #screene,d0
  62.     move.w    d0,sb_plane4_lo
  63.     swap    d0
  64.     move.w    d0,sb_plane4_hi
  65.     swap    d0
  66.  
  67. wait:    bsr    sb_setup
  68.     btst    #6,$bfe001
  69.     bne.s    wait        ; wait for lmb
  70.  
  71.     lea    $dff000,a5        ; hardware base address
  72.     move.l    #0,$80(a5)        ; blank copper list
  73.     move.l    #0,$84(a5)        ; if gfx lib not open (slayer boot)
  74.     move.w    #0,$180(a5)        ; bgc to black
  75.     
  76.     Move.l    OldV3,$6c.w        ; restore old l3
  77.     
  78.     Lea    GfxLib,a1        ; Pointer to Library Text
  79.     move.l    4.w,a6
  80.     jsr    -132(a6)        ; forbid
  81.     Move.l    4.w,a6        ; Exec
  82.     Moveq.l    #0,d0        ; Clear D0
  83.     Jsr    -$228(a6)        ; Open Library
  84.     cmp.l    #0,d0
  85.     beq    no_gfx_lib        ; if gfx lib not open dont restore copper lib (slayer boot)
  86.     
  87.     Move.l    d0,a1            
  88.     Move.l    $26(a1),$80(a5)    ; restore copper 1
  89.     Move.l    $32(a1),$84(a5)    ; restore copper 2
  90. no_gfx_lib:
  91.  
  92.     Move.w    OldInt,d0        ; start old interupts
  93.     Or.w    #$8000,d0
  94.     Move.w    d0,$9a(a5)
  95.     Move.w    OldDma,d0        ; start old DMA
  96.     Or.w    #$8000,d0
  97.     Move.w    d0,$96(a5)
  98.     Move.b    #$9b,$bfed01    ; Start Timers
  99.     Move.l    4.w,a6        ; Close Gfx lib
  100.     Jsr    -$19e(a6)
  101.     move.l    4.w,a6
  102.     jsr    -138(a6)        ; permit
  103.  
  104.     move.w    #0,$bfec00        ; clear kbd
  105.  
  106.     Moveq.l    #0,d0        ; No errors
  107.     Rts            ; Exit
  108.  
  109.  
  110. my_level3:    Movem.l    d0-d7/a0-a6,-(a7)    ; New copper
  111.     Move.w    #$10,$dff09c    ; Serviced Interupt
  112.  
  113.     btst    #10,$dff016
  114.     bne    exit
  115.  
  116.     lea    shade_map,a0
  117.     move.w    2(a0),d7
  118.     move.w    #31,d0
  119. .cycle    move.w    6(a0),2(a0)
  120.     add.l    #4,a0
  121.     dbf    d0,.cycle
  122.     move.w    d7,-2(a0)
  123.  
  124. Exit:    Movem.l    (a7)+,d0-d7/a0-a6
  125.     Rte            ; Return from Interupt
  126.  
  127.     *************************************************
  128.  
  129.     include    "sc:rnd.i"
  130.  
  131.     *************************************************
  132.  
  133. sb_setup:    move.w    #2,x1step
  134.     move.w    #2,y1step
  135.  
  136.     move.w    #speed1,d0
  137.     bsr    rnd
  138.     asl.w    #1,d1
  139.     move.w    d1,x2step
  140.     move.w    #speed2,d0
  141.     bsr    rnd
  142.     asl.w    #1,d1
  143.     move.w    d1,y2step
  144.  
  145.     move.w    #speed3,d0
  146.     bsr    rnd
  147.     asl.w    #1,d1
  148.     move.w    d1,x3step
  149.     move.w    #speed4,d0
  150.     bsr    rnd
  151.     asl.w    #1,d1
  152.     move.w    d1,y3step
  153.  
  154.     bsr    sb_cls
  155.     
  156.     move.w    #9,d0
  157.     bsr    rnd
  158.     asl.w    #6,d1
  159.     lea    shade_colours,a0
  160.     ext.l    d1
  161.     add.l    d1,a0
  162.     lea    shade_map-4,a1
  163.     move.w    #31,d0
  164. .col    move.w    (a0)+,2(a1)
  165.     add.l    #4,a1
  166.     dbf    d0,.col
  167.  
  168. .loop    Move.l    $dff004,d2
  169.     And.l    #$0001ff00,d2    
  170.     Cmp.l    #$00001000,d2
  171.     Bne.s    .loop
  172.  
  173. .sinok    bsr    sb_do
  174.  
  175.     btst    #6,$bfe001
  176.     beq    .exit
  177.  
  178.     cmp.w    #512,lcount
  179.     blt    .loop
  180.  
  181.     add.l    #4,brush_ptr
  182.     move.l    brush_ptr,a0
  183.     cmp.l    #-1,(a0)
  184.     bne    .exit
  185.     move.l    #brushlist,brush_ptr
  186.     
  187. .exit    rts
  188.  
  189.     *************************************************
  190.     
  191. sb_cls:    Move.l    #screena,a0
  192.  
  193. .wait1    Btst    #14,$dff002
  194.     Bne    .wait1
  195.     
  196.     Move.l    #$1f00000,$dff040
  197.     Move.l    a0,$dff054
  198.     move.l    #0,$dff074
  199.     move.l    #0,$dff066
  200.     Move    #256*64+20,$dff058
  201.     
  202.     Move.l    #screenb,a0
  203.  
  204. .wait2    Btst    #14,$dff002
  205.     Bne    .wait2
  206.     
  207.     Move.l    #$1f00000,$dff040
  208.     Move.l    a0,$dff054
  209.     move.l    #0,$dff074
  210.     move.l    #0,$dff066
  211.     Move    #256*64+20,$dff058
  212.  
  213.     Move.l    #screenc,a0
  214.  
  215. .wait3    Btst    #14,$dff002
  216.     Bne    .wait3
  217.     
  218.     Move.l    #$1f00000,$dff040
  219.     Move.l    a0,$dff054
  220.     move.l    #0,$dff074
  221.     move.l    #0,$dff066
  222.     Move    #256*64+20,$dff058
  223.  
  224.     Move.l    #screend,a0
  225.  
  226. .wait4    Btst    #14,$dff002
  227.     Bne    .wait4
  228.     
  229.     Move.l    #$1f00000,$dff040
  230.     Move.l    a0,$dff054
  231.     move.l    #0,$dff074
  232.     move.l    #0,$dff066
  233.     Move    #256*64+20,$dff058
  234.  
  235.     Move.l    #screene,a0
  236.  
  237. .wait5    Btst    #14,$dff002
  238.     Bne    .wait5
  239.     
  240.     Move.l    #$1f00000,$dff040
  241.     Move.l    a0,$dff054
  242.     move.l    #0,$dff074
  243.     move.l    #0,$dff066
  244.     Move    #256*64+20,$dff058
  245.     
  246.     move.w    #0,lcount
  247.     
  248.     rts
  249.     
  250.     ***********************************************************
  251.         
  252. sb_do:    add.w    #1,lcount
  253.  
  254.     Lea    $dff000,a5
  255.  
  256. .wait    Btst    #14,$dff002
  257.     Bne    .wait
  258.  
  259.     lea    sintable,a3
  260.     lea    128(a3),a4
  261.  
  262.     move.w    sinepos,d4
  263.     move.w    cosinepos,d5
  264.  
  265.     move.w    (a3,d4.w),d0
  266.     move.w    (a4,d5.w),d1
  267.     muls    #size1,d0
  268.     muls    #size1,d1
  269.     swap    d0
  270.     swap    d1
  271.  
  272.     move.w    sinepos2,d4
  273.     move.w    cosinepos2,d5
  274.  
  275.     move.w    (a3,d4.w),d2
  276.     move.w    (a4,d5.w),d3
  277.     muls    #size2,d2
  278.     muls    #size3,d3
  279.     swap    d2
  280.     swap    d3
  281.     add.w    d2,d0
  282.     add.w    d3,d1
  283.  
  284.     move.w    sinepos3,d4
  285.     move.w    cosinepos3,d5
  286.  
  287.     move.w    (a3,d4.w),d2
  288.     move.w    (a4,d5.w),d3
  289.     muls    #size2,d2
  290.     muls    #size3,d3
  291.     swap    d2
  292.     swap    d3
  293.     add.w    d2,d0
  294.     add.w    d3,d1
  295.  
  296.     movem.l    d0-d1,-(a7)
  297.     add.w    #160-16,d0
  298.     add.w    #128-16,d1
  299.     bsr    plot_bob
  300.     movem.l    (a7)+,d0-d1
  301.  
  302.     movem.l    d0-d1,-(a7)
  303.     not.w    d1
  304.     add.w    #160-16,d0
  305.     add.w    #128-16,d1
  306.     bsr    plot_bob
  307.     movem.l    (a7)+,d0-d1
  308.     
  309.     move.w    x2step,d1
  310.     add.w    d1,sinepos2
  311.     and.w    #$3fe,sinepos2
  312.     move.w    y2step,d1
  313.     add.w    d1,cosinepos2
  314.     and.w    #$3fe,cosinepos2
  315.     
  316.     move.w    x3step,d1
  317.     add.w    d1,sinepos3
  318.     and.w    #$3fe,sinepos3
  319.     move.w    y3step,d1
  320.     add.w    d1,cosinepos3
  321.     and.w    #$3fe,cosinepos3
  322.     
  323.     rts
  324.  
  325.     *************************************************
  326.  
  327. plot_bob:    movem.l    d0-d7/a0-a6,-(a7)
  328.  
  329.     lea    screena,a0
  330.     lea    screenb,a1
  331.     lea    screenc,a2
  332.     lea    screend,a3
  333.     lea    screene,a4
  334.  
  335.     move.l    brush_ptr,a6
  336.     move.l    (a6),a6
  337.  
  338.     move.w    d0,d5
  339.     and.w    #15,d5
  340.     lsr.w    #3,d0
  341.     ext.l    d0
  342.     add.l    d0,a0
  343.     add.l    d0,a1
  344.     add.l    d0,a2
  345.     add.l    d0,a3
  346.     add.l    d0,a4
  347.     
  348.     mulu    #40,d1
  349.     ext.l    d1
  350.     add.l    d1,a0
  351.     add.l    d1,a1
  352.     add.l    d1,a2
  353.     add.l    d1,a3
  354.     add.l    d1,a4
  355.     
  356.     mulu    #$1000,d5
  357.     or.w    #$b5a,d5
  358.  
  359. .wait    Btst    #14,$dff002
  360.     Bne    .wait
  361.  
  362.     ; plane 1
  363.  
  364.     Move.l    a0,$dff054        ; dest mem d
  365.     Move.l    a0,$dff048        ; dest mem c
  366.     Move.l    a6,$dff050        ; source mem a
  367.     Move.w    #$ffff,$dff044    ; blit 1st word mask source a
  368.     move.w    #$ffff,$dff046    ; blit last word mask source a
  369.     move.w    d5,$dff040
  370.     move.w    #0,$dff064        ; source for a
  371.     move.w    #0,$dff042        ; blit cont reg 1
  372.     Move.w    #34,$dff066        ; modulo for d
  373.     Move.w    #34,$dff060        ; modulo for c
  374.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  375.  
  376.     and.w    #$f000,d5
  377.     or.w    #$0f9a,d5
  378.  
  379. .wait2    Btst    #14,$dff002
  380.     Bne    .wait2
  381.  
  382.     ; plane 2
  383.  
  384.     move.l    a6,$dff050        ; source mem a
  385.     move.l    a0,$dff04c        ; dest mem b
  386.     move.l    a1,$dff048        ; dest mem c
  387.     move.l    a1,$dff054        ; dest mem d
  388.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  389.     move.w    #$ffff,$dff046    ; blit last word mask source a
  390.     move.w    d5,$dff040        ; blit cont reg 0
  391.     move.w    #0,$dff042        ; blit cont reg 1
  392.     move.w    #00,$dff064        ; modulo for a
  393.     move.w    #34,$dff062        ; modulo for b
  394.     move.w    #34,$dff066        ; modulo for d
  395.     move.w    #34,$dff060        ; modulo for c
  396.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  397.  
  398.     and.w    #$f000,d5
  399.     or.w    #$0f10,d5
  400.  
  401. .wait3    Btst    #14,$dff002
  402.     Bne    .wait3
  403.     
  404.     ; temp smear 1
  405.     
  406.  
  407.     move.l    a6,$dff050        ; source mem a
  408.     move.l    a0,$dff04c        ; dest mem b
  409.     move.l    a1,$dff048        ; dest mem c
  410.     move.l    #tempsmear1,$dff054    ; dest mem d
  411.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  412.     move.w    #$ffff,$dff046    ; blit last word mask source a
  413.     move.w    d5,$dff040        ; blit cont reg 0
  414.     move.w    #0,$dff042        ; blit cont reg 1
  415.     move.w    #00,$dff064        ; modulo for a
  416.     move.w    #34,$dff062        ; modulo for b
  417.     move.w    #34,$dff060        ; modulo for c
  418.     move.w    #0,$dff066        ; modulo for d
  419.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  420.  
  421. .wait4    Btst    #14,$dff002
  422.     Bne    .wait4
  423.  
  424.     ; plane 3
  425.  
  426.     move.l    #tempsmear1,$dff050    ; source mem a
  427.     move.l    a2,$dff04c        ; dest mem b
  428.     move.l    a2,$dff054        ; dest mem d
  429.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  430.     move.w    #$ffff,$dff046    ; blit last word mask source a
  431.     move.w    #$d3c,$dff040    ; blit cont reg 0
  432.     move.w    #0,$dff042        ; blit cont reg 1
  433.     move.w    #00,$dff064        ; modulo for a
  434.     move.w    #34,$dff062        ; modulo for b
  435.     move.w    #34,$dff066        ; modulo for d
  436.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  437.  
  438. .wait5    Btst    #14,$dff002
  439.     Bne    .wait5
  440.  
  441.     ; plane 4
  442.  
  443.     move.l    #tempsmear1,$dff050    ; source mem a
  444.     move.l    a2,$dff04c        ; source mem b
  445.     move.l    a3,$dff048        ; source mem c
  446.     move.l    a3,$dff054        ; dest mem d
  447.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  448.     move.w    #$ffff,$dff046    ; blit last word mask source a
  449.     move.w    #$f9a,$dff040    ; blit cont reg 0
  450.     move.w    #0,$dff042        ; blit cont reg 1
  451.     move.w    #00,$dff064        ; modulo for a
  452.     move.w    #34,$dff062        ; modulo for b
  453.     move.w    #34,$dff060        ; modulo for c
  454.     move.w    #34,$dff066        ; modulo for d
  455.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  456.  
  457. .wait6    Btst    #14,$dff002
  458.     Bne    .wait6
  459.  
  460.     ; temp smear 2
  461.  
  462.     move.l    #tempsmear1,$dff050    ; source mem a
  463.     move.l    a2,$dff04c        ; source mem b
  464.     move.l    a3,$dff048        ; source mem c
  465.     move.l    #tempsmear2,$dff054    ; dest mem d
  466.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  467.     move.w    #$ffff,$dff046    ; blit last word mask source a
  468.     move.w    #$f10,$dff040    ; blit cont reg 0
  469.     move.w    #0,$dff042        ; blit cont reg 1
  470.     move.w    #0,$dff064        ; modulo for a
  471.     move.w    #34,$dff062        ; modulo for b
  472.     move.w    #34,$dff060        ; modulo for c
  473.     move.w    #0,$dff066        ; modulo for d
  474.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  475.  
  476. .wait7    Btst    #14,$dff002
  477.     Bne    .wait7
  478.  
  479.     ; plane 5
  480.  
  481.     move.l    #tempsmear2,$dff050    ; source mem a
  482.     move.l    a4,$dff04c        ; dest mem b
  483.     move.l    a4,$dff054        ; dest mem d
  484.     move.w    #$ffff,$dff044    ; blit 1st word mask source a
  485.     move.w    #$ffff,$dff046    ; blit last word mask source a
  486.     move.w    #$d3c,$dff040    ; blit cont reg 0
  487.     move.w    #0,$dff042        ; blit cont reg 1
  488.     move.w    #00,$dff064        ; modulo for a
  489.     move.w    #34,$dff062        ; modulo for b
  490.     move.w    #34,$dff066        ; modulo for d
  491.     Move.w    #(31*64)+3,$dff058    ; blit height,width
  492.  
  493. .wait8    Btst    #14,$dff002
  494.     Bne    .wait8
  495.  
  496.     movem.l    (a7)+,d0-d7/a0-a6
  497.     rts
  498.  
  499.     *************************************************
  500.  
  501. sinepos:    dc.w    0
  502. cosinepos:    dc.w    0
  503. sinepos2:    dc.w    0
  504. cosinepos2:    dc.w    0
  505. sinepos3:    dc.w    0
  506. cosinepos3:    dc.w    0
  507.  
  508. x1step:    dc.w    10
  509. y1step:    dc.w    80
  510. x2step:    dc.w    10
  511. y2step:    dc.w    80
  512. x3step:    dc.w    10
  513. y3step:    dc.w    80
  514.  
  515. sinoffset:    dc.w    0
  516.  
  517.  
  518. lcount:    dc.w    0
  519.  
  520. sintable:        incbin    "dh0:data/misc/sin.3fe"
  521.         incbin    "dh0:data/misc/sin.3fe"
  522.         incbin    "dh0:data/misc/sin.3fe"
  523.         incbin    "dh0:data/misc/sin.3fe"
  524.  
  525.  
  526. shade_colours:    dc.w    $000,$00f,$11f,$22f,$33f,$44f,$55f,$66f,$77f,$88f,$99f,$aaf,$bbf,$ccf,$ddf,$eef,$fff,$fee,$fdd,$fcc,$fbb,$faa,$f99,$f88,$f77,$f66,$f55,$f44,$f33,$f22,$f11,$f00
  527.         dc.w    $000,$002,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220
  528.         dc.w    $000,$200,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202
  529.         dc.w    $000,$f00,$f11,$f22,$f33,$f44,$f55,$f66,$f77,$f88,$f99,$faa,$fbb,$fcc,$fdd,$fee,$fff,$eef,$ddf,$ccf,$bbf,$aaf,$99f,$88f,$77f,$66f,$55f,$44f,$33f,$22f,$11f,$00f
  530.         dc.w    $000,$00f,$11f,$22f,$33f,$44f,$55f,$66f,$77f,$88f,$99f,$aaf,$bbf,$ccf,$ddf,$eef,$fff,$fee,$fdd,$fcc,$fbb,$faa,$f99,$f88,$f77,$f66,$f55,$f44,$f33,$f22,$f11,$f00
  531.         dc.w    $000,$002,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220
  532.         dc.w    $000,$200,$400,$600,$800,$a00,$c00,$e00,$f00,$ff0,$ee0,$cc0,$a00,$880,$660,$440,$220,$004,$006,$008,$00a,$00c,$00e,$f00,$f0f,$e0e,$c0c,$a0a,$808,$606,$404,$202
  533.         dc.w    $000,$f00,$f11,$f22,$f33,$f44,$f55,$f66,$f77,$f88,$f99,$faa,$fbb,$fcc,$fdd,$fee,$fff,$eef,$ddf,$ccf,$bbf,$aaf,$99f,$88f,$77f,$66f,$55f,$44f,$33f,$22f,$11f,$00f
  534.         dc.w    $000,$00f,$11f,$12f,$22f,$23f,$33f,$43f,$44f,$45f,$55f,$65f,$66f,$76f,$77f,$78f,$88f,$98f,$99f,$9af,$aaf,$baf,$bbf,$bcf,$ccf,$dcf,$ddf,$def,$eef,$fef,$fff,$fff
  535.         
  536.     *************************************************
  537.     
  538. my_copper:        dc.w    $100,$5200    ; 4 bp - lo res
  539.         dc.w    $104,$a    ; bp control reg
  540.         dc.w    $108,0    ; bp modulo - odd
  541.         dc.w    $10a,0    ; bp modulo - even
  542.         dc.w    $180,0    ; colour 0 to black
  543.         dc.w    $102,0
  544.         
  545.         dc.w    $08e,$2c81    ; bp window start left
  546.         dc.w    $090,$2cc1    ; bp window bot right
  547.         dc.w    $094,$d0    ; bp stop horz
  548.         dc.w    $92,$38
  549.  
  550.         dc.w    $120,0,$122,0
  551.         dc.w    $124,0,$126,0
  552.         dc.w    $128,0,$12a,0
  553.         dc.w    $12c,0,$12e,0
  554.         dc.w    $130,0,$132,0
  555.         dc.w    $134,0,$136,0
  556.         dc.w    $138,0,$13a,0
  557.         dc.w    $13c,0,$13e,0
  558.         
  559.  
  560.         dc.w      $e0
  561. sb_plane0_hi:    dc.w    0,$e2
  562. sb_plane0_lo:    dc.w    0,$e4
  563. sb_plane1_hi:    dc.w    0,$e6
  564. sb_plane1_lo:    dc.w    0,$e8
  565. sb_plane2_hi:    dc.w    0,$ea
  566. sb_plane2_lo:    dc.w    0,$ec
  567. sb_plane3_hi:    dc.w    0,$ee
  568. sb_plane3_lo:    dc.w    0,$f0
  569. sb_plane4_hi:    dc.w    0,$f2
  570. sb_plane4_lo:    dc.w    0
  571.  
  572.         
  573.         dc.w    $180,$000
  574. shade_map:        dc.w    $182,$11f
  575.         dc.w    $184,$22f
  576.         dc.w    $186,$33f
  577.         dc.w    $188,$44f
  578.         dc.w    $18a,$55f
  579.         dc.w    $18c,$66f
  580.         dc.w    $18e,$77f
  581.         dc.w    $190,$88f
  582.         dc.w    $192,$99f
  583.         dc.w    $194,$aaf
  584.         dc.w    $196,$bbf
  585.         dc.w    $198,$ccf
  586.         dc.w    $19a,$ddf
  587.         dc.w    $19c,$eef
  588.         dc.w    $19e,$fff
  589.         dc.w    $1a0,$fee
  590.         dc.w    $1a2,$fdd
  591.         dc.w    $1a4,$fcc
  592.         dc.w    $1a6,$fbb
  593.         dc.w    $1a8,$faa
  594.         dc.w    $1aa,$f99
  595.         dc.w    $1ac,$f88
  596.         dc.w    $1ae,$f77
  597.         dc.w    $1b0,$f66
  598.         dc.w    $1b2,$f55
  599.         dc.w    $1b4,$f44
  600.         dc.w    $1b6,$f33
  601.         dc.w    $1b8,$f22
  602.         dc.w    $1ba,$f11
  603.         dc.w    $1bc,$f00
  604.         dc.w    $1be,$f00
  605.         
  606.         dc.w    $ffe1,$fffe    ; end of ntsc screen
  607.         dc.w    $9c,$8010    ; irq set bits - restart copper
  608.         dc.w    $3001,$ff00    ; end of pal screen
  609.         dc.w    $ffff,$fffe    ; end of copper list
  610.  
  611. tempsmear1:        ds.l    384
  612. tempsmear2:        ds.l    384
  613.  
  614. oldint:        dc.l    0
  615. olddma:        dc.l    0
  616. oldv3:        dc.l    0
  617. gfxlib:        dc.b    "graphics.library",0
  618.         even
  619.  
  620. brushlist:        dc.l    brush1
  621.         dc.l    brush2
  622.         dc.l    brush3
  623.         dc.l    brush4
  624.         dc.l    brush3
  625.         dc.l    brush4
  626.         dc.l    -1
  627.  
  628. brush_ptr:        dc.l    brushlist
  629.  
  630. brush1:        incbin    "dh0:data/misc/shadeb1.bin"
  631. brush2:        incbin    "dh0:data/misc/shadeb2.bin"
  632. brush3:        incbin    "dh0:data/misc/shadeb3.bin"
  633. brush4:        incbin    "dh0:data/misc/shadeb6.bin"
  634.  
  635.  
  636. screena:        ds.l    10*256
  637. screenb:        ds.l    10*256
  638. screenc:        ds.l    10*256
  639. screend:        ds.l    10*256
  640. screene:        ds.l    10*256
  641.  
  642.  
  643.